/*
 * Copyright © 2018 CODESTD.COM Inc. All rights reserved.
 */
package com.codestd.security.shiro.jwt;

import com.codestd.security.model.SysUser;

/**
 * Jwt Token管理。
 *
 * @author jaune
 * @since 1.0.0
 */
public interface JwtTokenManager {

    /**
     * 创建Token
     * @param sysUser 用户信息
     */
    String createToken(SysUser sysUser);

    /**
     * 创建Token
     * @param jwtId JWT ID
     * @param sysUser 用户信息
     */
    String createToken(String jwtId, SysUser sysUser);

    String createTokenForMobile(SysUser sysUser);

    /**
     * 刷新Token，重置缓存有效期
     * @param token Token
     */
    void refreshToken(String token);

    /**
     * 删除Token
     * @param token Token
     */
    void deleteToken(String token);

    /**
     * 检查Token是否有效
     */
    boolean checkToken(String token);

    /**
     * 从Token中获取用户信息
     */
    SysUser resolve(String token);
}
